//Graham Matuszewski

#pragma once

#ifndef FEEDER_H_
#define FEEDER_H_

#include "Lane.h"
#include "Structs.h"

class Lane;


class Feeder
{
public:


	// ------------------------------------------------------------------------------------
	// Messages:

	virtual void msgPleaseGetParts(PartType newPartType,Lane* newLane) =0; //called by Lane //Nathan Perry: Changed Lane to LaneAgent* //Graham Matuszewski: Thanks
	virtual void msgHereAreParts(PartRecipe recipe) =0; //called by Gantry
	virtual void msgGUIHasMovedPart()=0; //called by GUI
	virtual void msgPurgeParts()=0; //called by ITSELF
	virtual void msgGUIHasPurged()=0; //called by GUI
	virtual void msgCurrentStatus()=0; //called by Feeders
	// ------------------------------------------------------------------------------------

	//virtual GUIFeeder* getGUI() = 0; 
	//virtual std::string toString() const;


};

#endif